<?php

namespace Sisesporte\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity
 * @ORM\Table(name="formacao_professor")
 * @ORM\Entity(repositoryClass="Sisesporte\Repository\FormacaoProfessorRepository")
 */
class FormacaoProfessor {

    public function __construct($options = null) {
        Configurator::configure($this, $options);
    }

    /**
     * @var integer $sqFormacaoProfessor
     *
     * @ORM\Column(name="sq_formacao_professor", type="integer", nullable=false)
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $sqFormacaoProfessor;

    /**
     * @var bigint $sqProfessor
     * @ORM\Column(name="sq_professor", type="bigint", nullable=true)
     * @ORM\ManyToOne(targetEntity="Sisesporte\Entity\Professor", inversedBy="sq_pessoa")
     * @ORM\JoinColumn(name="sq_professor", referencedColumnName="sq_pessoa")
     */
    protected $sqProfessor;

    /**
     * @var string $noFormacao
     * @ORM\Column(name="no_formacao", type="text", nullable=false)
     */
    protected $noFormacao;

    /**
     * @var bigint $sqGrauEscolaridade
     * @ORM\Column(name="sq_grau_escolaridade", type="bigint", nullable=true)
     * @ORM\ManyToOne(targetEntity="Sisesporte\Entity\GrauEscolaridade", inversedBy="sq_grau_escolaridade")
     * @ORM\JoinColumn(name="sq_grau_escolaridade", referencedColumnName="sq_grau_escolaridade")
     */
    protected $sqGrauEscolaridade;

    /**
     * @var date $dtFormacao
     * @ORM\Column(name="dt_formacao", type="date", nullable=false)
     */
    protected $dtFormacao;

    /**
     * @var bigint $sqInstituicaoFormacao
     * @ORM\Column(name="sq_instituicao_formacao", type="bigint", nullable=true)
     * @ORM\ManyToOne(targetEntity="Sisesporte\Entity\InstituicaoEnsino", inversedBy="sq_instituicao_ensino")
     * @ORM\JoinColumn(name="sq_instituicao_ensino", referencedColumnName="sq_instituicao_ensino")
     */
    protected $sqInstituicaoFormacao;

    /**
     * @var date $dtRegistro
     * @ORM\Column(name="dt_registro", type="date", nullable=false)
     */
    protected $dtRegistro;

    /**
     * @var boolean $stAtivo
     * @ORM\Column(name="st_ativo", type="boolean", nullable=true)
     */
    protected $stAtivo;

    public function getSqFormacaoProfessor() {
        return $this->sqFormacaoProfessor;
    }

    public function setSqFormacaoProfessor($sqFormacaoProfessor) {
        $this->sqFormacaoProfessor = $sqFormacaoProfessor;
        return $this;
    }

    public function getSqProfessor() {
        return $this->sqProfessor;
    }

    public function setSqProfessor($sqProfessor) {
        $this->sqProfessor = $sqProfessor;
        return $this;
    }

    public function getNoFormacao() {
        return $this->noFormacao;
    }

    public function setNoFormacao($noFormacao) {
        $this->noFormacao = $noFormacao;
        return $this;
    }

    public function getSqGrauEscolaridade() {
        return $this->sqGrauEscolaridade;
    }

    public function setSqGrauEscolaridade($sqGrauEscolaridade) {
        $this->sqGrauEscolaridade = $sqGrauEscolaridade;
        return $this;
    }

    public function getDtFormacao() {
        return $this->dtFormacao;
    }

    public function setDtFormacao($dtFormacao) {
        $this->dtFormacao = $dtFormacao;
        return $this;
    }

    public function getSqInstituicaoFormacao() {
        return $this->sqInstituicaoFormacao;
    }

    public function setSqInstituicaoFormacao($sqInstituicaoFormacao) {
        $this->sqInstituicaoFormacao = $sqInstituicaoFormacao;
        return $this;
    }

    public function getDtRegistro() {
        return $this->dtRegistro;
    }

    public function setDtRegistro($dtRegistro) {
        $this->dtRegistro = $dtRegistro;
        return $this;
    }

    public function getStAtivo() {
        return $this->stAtivo;
    }

    public function setStAtivo($stAtivo) {
        $this->stAtivo = $stAtivo;
        return $this;
    }

    public function __toString() {
        return $this->noFormacao;
    }

    public function toArray() {
        return array(
            'sqFormacaoProfessor' => $this->getSqFormacaoProfessor(),
            'sqProessor' => $this->getSqProfessor()->getSqProfessor(),
            'noFormacao' => $this->getNoFormacao(),
            'sqGrauEscolariade' => $this->getSqGrauEscolaridade()->getSqGrauEscolaridade(),
            'dtFormacao' => $this->getDtFormacao(),
            'sqInstituicaoEnsino' => $this->getSqInstituicaoFormacao()->getSqInstituicaoFormacao(),
            'dtRegistro' => $this->getDtRegistro(),
            'stAtivo' => $this->getStAtivo()
        );
    }

}
